package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.TSCServiceType;
import com.shrcl.engineerprocess.domain.TSCServiceTypeDefinition;
import com.shrcl.engineerprocess.domain.TSCServiceTypeOptionItem;
import com.shrcl.engineerprocess.domain.impl.TSCServiceTypeInstanceImpl;
import com.shrcl.engineerprocess.domain.proxy.TSCServiceTypeInstanceProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import edu.fudan.mylang.pf.INamedModelObject;

@EntityImplementation(implementBy = TSCServiceTypeInstanceImpl.class)
public interface TSCServiceTypeInstance extends IModelObject, INamedModelObject {
  public abstract TSCServiceTypeDefinition getTypeDefinition();
  
  public abstract TSCServiceTypeInstance setTypeDefinition(final TSCServiceTypeDefinition typeDefinition);
  
  public abstract TSCServiceType getServiceType();
  
  public abstract TSCServiceTypeInstance setServiceType(final TSCServiceType serviceType);
  
  public abstract TSCServiceTypeOptionItem getSelected();
  
  public abstract TSCServiceTypeInstance setSelected(final TSCServiceTypeOptionItem selected);
  
  public abstract String getEntityName();
  
  public abstract TSCServiceTypeInstanceProxy toProxy();
}
